<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /* 
      instanceof用来检查一个对象是否是一个类的实例
        - instanceof检查的是对象的原型链上是否有该类的实例
            只要原型上有该类实例，就会返回true
    -   dog -> Animal的实例 -> Object实例 -> Object原型
    - Object是所有对象的原型，所以所有对象和instanof运算都会返回true
    */
    class Animal {
      name = "ani";
      say() {
        console.log("animal say");
      }
    }
    Animal.prototype.a = 120;
    class Dog extends Animal {}
    const dog = new Dog();
    console.log(dog instanceof Dog); //true
    console.log(dog instanceof Animal); //true
    /* 
        in 
            - 使用in运算符可以检查一个对象是否有某个属性，无论属性在对象自身还是在原型中，都会返回true
            对象.hasOwnProperty(属性名)(不推荐使用)可以判断对象自身是否有某个属性，而in运算符可以判断对象自身和原型是否有某个属性
            Object.hasOwn(对象, 属性名)可以判断对象自身是否有某个属性
    */
    let n1 = new Animal();
    console.log("name" in n1);
    console.log(Object.hasOwn(n1, "name"));
    let res = Object.create(Array.prototype)

   
  </script>
</html>
